home *** CD-ROM | disk | FTP | other *** search
- /* Note: this colour comparison routine was snitched from HamSharp.
-
- This has the side effect of allowing one to compare colour errors gotten
- with GIFMachine to those gotten with (S)HamSharp.
- */
-
- #include "GIFMachine.h"
-
- static UBYTE Diff[16][16];
- static UBYTE Intensity[16][16][16];
-
- extern struct Library *MathIeeeDoubBasBase;
-
- void InitDiff(void)
- {
- register int i;
- register int j;
- register int r;
- register int g;
- register int b;
-
- for (i = 0; i < 16; i++)
- for (j = 0; j < 16; j++)
- Diff[i][j] = (i - j) * (i - j);
-
- for (r = 0; r < 16; r++)
- for (g = 0; g < 16; g++)
- for (b = 0; b < 16; b++)
- Intensity[r][g][b] = (int)(.299 * r + .587 * g + .114 * b);
- }
-
- ULONG RGBdiff(UBYTE r1, UBYTE g1, UBYTE b1, UBYTE r2, UBYTE g2, UBYTE b2)
- {
- return (ULONG)(Diff[Intensity[r1][g1][b1]][Intensity[r2][g2][b2]] +
- Diff[r1][r2] + Diff[g1][g2] + Diff[b1][b2]);
- }
-